home *** CD-ROM | disk | FTP | other *** search
Text File | 1998-06-23 | 22.9 KB | 1,858 lines |
-
- ;HRTmon Amiga system monitor
- ;Copyright (C) 1991-1998 Alain Malek Alain.Malek@cryogen.com
- ;
- ;This program is free software; you can redistribute it and/or
- ;modify it under the terms of the GNU General Public License
- ;as published by the Free Software Foundation; either version 2
- ;of the License, or (at your option) any later version.
- ;
- ;This program is distributed in the hope that it will be useful,
- ;but WITHOUT ANY WARRANTY; without even the implied warranty of
- ;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- ;GNU General Public License for more details.
- ;
- ;You can find the full GNU GPL online at: http://www.gnu.org
-
-
- **********************************************************
- ;-------------- assemble 65816 (AF) ----------------------
-
- cmd_af bsr evaluate
- bne.w illegal_addr
- move.l d0,af_ptr
- move.l d0,a4
- bsr reloc_pic
- .loop move.b (a0)+,d0
- beq.b .end_line
- cmp.b #$20,d0
- beq.b .loop
- subq.l #1,a0
-
- bsr f_assemble
- tst.l d0
- beq.b .end_line ;error
-
- add.l d0,af_ptr
- move.l af_ptr,d0
- moveq #8,d1
- lea.l .nextAF_txt,a0
- bsr print
- bsr print_hex
- lea.l .nextAF2_txt,a0
- bsr print
-
- .end_line
- bra.w end_command
-
- .nextAF_txt dc.b "af $",0
- .nextAF2_txt dc.b " ",0
- even
-
- **********************************************************
- ;-------------- disassemble 65816 (DF) -------------------
-
- cmd_df move.b (a0)+,d0
- beq.b ok_df_cmd ;keep last address
- cmp.b #$20,d0
- beq.b cmd_df
- subq.l #1,a0
-
- bsr evaluate
- bne.w illegal_addr
- move.l d0,dis_ptr
-
- ok_df_cmd move.l dis_ptr,d0 ;a4 = ptr on memory
- move.l d0,a4
-
- moveq #8-1,d7
- next_disf_line move.l a4,d0
- lea.l general_txt,a0 ;print address
- move.b #'d',(a0)+
- move.b #'f',(a0)+
- move.b #'$',(a0)+
- moveq #8,d1
- bsr conv_hex
-
- move.l a4,-(a7)
- bsr reloc_pic
-
- lea.l general_txt+11,a0
- move.l #' ',d0
- move.l d0,(a0)
- move.l d0,4(a0)
- move.l d0,8(a0)
- move.l d0,12(a0)
-
- lea.l general_txt+25,a0
- bsr f_disassemble
- move.l (a7)+,a4
- move.w d0,d3 ;copy instr. len
-
- lea.l general_txt+12,a0
- moveq #2,d1
- .loop move.b (a4)+,d0
- bsr conv_hex
- add.l d1,a0
- move.b #' ',(a0)+
- subq.w #1,d3
- bne.b .loop
-
- lea.l general_txt,a0
- bsr print
-
- tst.b break
- dbne d7,next_disf_line
-
- move.l a4,dis_ptr
-
- bra.w end_command
-
- ************************************************************
- ;a0=ascII source of instr.
- ;a4=memory ptr (corrected)
- ;returns instr. len in d0 0=error
-
- f_assemble movem.l d1-d7/a1-a4,-(a7)
-
- move.b (a0)+,d0
- bsr upper_case
- lsl.l #8,d0
- move.b (a0)+,d0
- bsr upper_case
- lsl.l #8,d0
- move.b (a0)+,d0
- bsr upper_case
- lsl.l #8,d0
- move.l d0,d2 ;d2=ASCII of instr.
-
- moveq #18,d1 ;addressing mode (18=rien)
- .seek move.b (a0)+,d0
- beq.w .end_line
- cmp.b #$20,d0
- beq.b .seek
-
- cmp.b #'#',d0
- bne.b .no_immediat
- bsr evaluate
- bne.w .error
- move.l d0,d4
- moveq #0,d1
- bra.w .end_line
-
- .no_immediat cmp.b #'A',d0
- bne.b .no_accu
- moveq #15,d1
- bra.w .end_line
-
- .no_accu cmp.b #'<',d0
- bne.b .no_direct
- bsr evaluate
- bne.w .error
- move.l d0,d4
- cmp.b #',',(a0)+
- bne.b .no_virg
- move.b (a0)+,d0
- bsr upper_case
- cmp.b #'X',d0
- bne.b .no_x
- moveq #2,d1
- bra.w .end_line
- .no_x cmp.b #'Y',d0
- bne.b .no_y
- moveq #22,d1
- bra.w .end_line
- .no_y cmp.b #'S',d0
- bne.b .no_s
- moveq #13,d1
- bra.w .end_line
- .no_s bra.w .error
- .no_virg moveq #1,d1
- bra.w .end_line
-
- .no_direct cmp.b #'!',d0
- bne.b .no_abs
- bsr evaluate
- bne.w .error
- move.l d0,d4
- cmp.b #',',(a0)+
- bne.b .no_virg2
- move.b (a0)+,d0
- bsr upper_case
- cmp.b #'X',d0
- bne.b .no_x2
- moveq #9,d1
- bra.b .end_line
- .no_x2 cmp.b #'Y',d0
- bne.b .no_y2
- moveq #10,d1
- bra.b .end_line
- .no_y2 bra.w .error
- .no_virg2 moveq #8,d1
- bra.b .end_line
-
- .no_abs cmp.b #'>',d0
- bne.b .no_absl
- bsr evaluate
- bne.w .error
- move.l d0,d4
- cmp.b #',',(a0)+
- bne.b .no_virg3
- move.b (a0)+,d0
- bsr upper_case
- cmp.b #'X',d0
- bne.b .no_x3
- moveq #12,d1
- bra.b .end_line
- .no_x3 bra.w .error
- .no_virg3 moveq #11,d1
- bra.b .end_line
-
-
- .no_absl
-
- subq.l #1,a0
- moveq #17,d1
- bsr evaluate
- bne.w .error
- move.l d0,d4
-
- .end_line
-
- lea.l fami_list-8,a3
- .loop addq.l #8,a3
- tst.b 1(a3)
- bne.w .end_seek
- cmp.l 2(a3),d2 ;cmp instr.
- bne.b .loop
- move.w 6(a3),d3
- and.w #$ff,d3
- cmp.w d3,d1 ;cmp addr. mode
- bne.b .loop
-
- move.b (a3),(a4) ;copy opcode
- lea.l fami_len,a3
- add.w d1,d1
- moveq #0,d5
- move.b (a3,d1.w),d5
- cmp.b #6,d5
- blt.b .normal
- bne.b .no_m6
- move.l a4,d0
- addq.l #2,d0
- move.l d4,d3
- sub.l d0,d3
- cmp.l #127,d3
- bgt.w .too_long
- cmp.l #-128,d3
- blt.w .too_long
- move.b d3,1(a4)
- bra.b .do_instr
- .no_m6 move.l a4,d0
- addq.l #3,d0
- move.l d4,d3
- sub.l d0,d3
- cmp.l #32767,d3
- bgt.w .too_long
- cmp.l #-32768,d3
- blt.w .too_long
- move.b d3,1(a4)
- lsr.w #8,d3
- move.b d3,2(a4)
- bra.b .do_instr
-
- .normal cmp.b #5,d5
- bne.b .no_imm
- moveq #1,d5 ;8bit mode
- tst.b fami_mode
- beq.b .no_imm
- moveq #2,d5 ;16bit mode
- .no_imm
- lea.l 1(a4),a1
- bra.b .go_dbf
- .sup move.b d4,(a1)+
- lsr.l #8,d4
- .go_dbf dbf d5,.sup
-
- .do_instr moveq #0,d0
- move.b 1(a3,d1.w),d0 ;read instr. len
- cmp.b #7,d0
- bne.b .ok
- moveq #2,d0
- tst.b fami_mode
- beq.b .ok
- moveq #3,d0
- bra.b .ok
-
- .end_seek cmp.w #17,d1
- bne.b .no_17
- moveq #19,d1
- bra.w .end_line
-
- .no_17 cmp.w #0,d1
- bne.b .no_00
- moveq #16,d1
- bra.w .end_line
- .no_00
-
- .error lea.l AFerror_txt,a0
- bsr print
- moveq #0,d0
-
- .ok movem.l (a7)+,d1-d7/a1-a4
- rts
-
- .too_long lea.l OutOfRange_txt,a0
- bsr print
- moveq #0,d0
- bra.w .ok
-
- OutOfRange_txt dc.b "Out of range error ...",$a,0
- AFerror_txt dc.b "Illegal instruction ...",$a,0
- even
-
- ;< direct
- ;! absolu
- ;> absolu long
-
- ; dc.b sup.bytes mode,instr.len
- fami_len
- dc.b 1,2 ;00 #$zz
- dc.b 1,2 ;01 $zz
- dc.b 1,2 ;02 $zz,x
- dc.b 1,2 ;03 ($zz)
- dc.b 1,2 ;04 ($zz,x)
- dc.b 1,2 ;05 ($zz),y
- dc.b 1,2 ;06 [$zz]
- dc.b 1,2 ;07 [$zz],y
- dc.b 2,3 ;08 $zzzz
- dc.b 2,3 ;09 $zzzz,x
- dc.b 2,3 ;10 $zzzz,y
- dc.b 3,4 ;11 $zzzzzz
- dc.b 3,4 ;12 $zzzzzz,x
- dc.b 1,2 ;13 $zz,s
- dc.b 1,2 ;14 ($zz,s),y
- dc.b 0,1 ;15 A
- dc.b 5,7 ;16 #$zz #$zzzz
- dc.b 6,2 ;17 pc+2+next byte
- dc.b 0,1 ;18 'rien'
- dc.b 7,3 ;19 pc+3+next word
- dc.b 2,3 ;20 ($zzzz)
- dc.b 2,3 ;21 ($zzzz,x)
- dc.b 1,2 ;22 $zz,y
-
- ;00 #$zz 8BitOnly
- ;01 $zz
- ;02 $zz,x
- ;03 ($zz)
- ;04 ($zz,x)
- ;05 ($zz),y
- ;06 [$zz]
- ;07 [$zz],y
- ;08 $zzzz
- ;09 $zzzz,x
- ;10 $zzzz,y
- ;11 $zzzzzz
- ;12 $zzzzzz,x
- ;13 $zz,s
- ;14 ($zz,s),y
- ;15 a
- ;16 #$zz #$zzzz
- ;17 pc+2+next byte
- ;18 'rien'
- ;19 pc+3+next word
- ;20 ($zzzz)
- ;21 ($zzzz,x)
- ;22 $zz,y
-
- ************************************************************
-
- set_65802 movem.l d0-d3/a0,-(a7)
- sf fami_mode
- lea.l f02_txt,a0
- moveq #63,d0
- move.w screen_height,d1
- subq.w #1,d1
- moveq #5-1,d3
- .loop move.b (a0)+,d2
- bsr print_char2
- addq.w #1,d0
- dbf d3,.loop
- movem.l (a7)+,d0-d3/a0
- rts
-
- set_65816 movem.l d0-d3/a0,-(a7)
- st fami_mode
- lea.l f16_txt,a0
- moveq #63,d0
- move.w screen_height,d1
- subq.w #1,d1
- moveq #5-1,d3
- .loop move.b (a0)+,d2
- bsr print_char2
- addq.w #1,d0
- dbf d3,.loop
- movem.l (a7)+,d0-d3/a0
- rts
-
- f02_txt dc.b "65802"
- f16_txt dc.b "65816"
- even
-
- ************************************************************
- ;65816 / 65802 disassembler
-
- ;a4=memory ptr (corrected)
- ;a0=ascII destination
- ;returns instr. len in d0
-
- f_disassemble movem.l d1-d7/a1-a3,-(a7)
-
- move.l #' ',d0
- move.l d0,(a0)
- move.l d0,4(a0)
-
- moveq #1,d7 ;len of instruction
-
- move.b (a4),d0
- lea.l fami_list,a3
- .seek tst.b 1(a3)
- bne.b .err
- cmp.b (a3),d0
- beq.b .found
- addq.l #8,a3
- bra.b .seek
- .found
- bsr do_famid
- bra.b .ok
-
- .err move.l #'??? ',(a0)+
- moveq #1,d0
- .ok move.b #$a,(a0)+
- clr.b (a0)+
- move.l d7,d0
- movem.l (a7)+,d1-d7/a1-a3
- rts
-
-
- do_famid lea.l 2(a3),a1
- move.b (a1)+,(a0)+ ;copy instr. name
- move.b (a1)+,(a0)+
- move.b (a1)+,(a0)+
- move.b #' ',(a0)+
- move.w 6(a3),d0
- and.w #$ff,d0
- lsl.w #2,d0
- jsr .fmode(pc,d0.w)
-
- ;bit 15 a,x,y:8bit
- ;bit 14 a,x,y:16bit
- move.w 6(a3),d0
- btst #15,d0
- beq.b .no_spec1
- move.b 1(a4),d0
- and.b #$20,d0
- beq.b .no_spec1
- lea.l .axy8,a1
- .copy1 move.b (a1)+,(a0)+
- bne.b .copy1
- subq.l #1,a0
- tst.b fami_auto
- bne.b .no_set
- bsr set_65802
- .no_set rts
- .no_spec1 btst #14,d0
- beq.b .no_spec2
- move.b 1(a4),d0
- and.b #$20,d0
- beq.b .no_spec2
- lea.l .axy16,a1
- .copy2 move.b (a1)+,(a0)+
- bne.b .copy2
- subq.l #1,a0
- tst.b fami_auto
- bne.b .no_spec2
- bsr set_65816
- .no_spec2 rts
-
- OPT_OFF
- .fmode bra.w fmode00
- bra.w fmode01
- bra.w fmode02
- bra.w fmode03
- bra.w fmode04
- bra.w fmode05
- bra.w fmode06
- bra.w fmode07
- bra.w fmode08
- bra.w fmode09
- bra.w fmode10
- bra.w fmode11
- bra.w fmode12
- bra.w fmode13
- bra.w fmode14
- bra.w fmode15
- bra.w fmode16
- bra.w fmode17
- bra.w fmode18
- bra.w fmode19
- bra.w fmode20
- bra.w fmode21
- bra.w fmode22
- OPT_ON
-
- .axy8 dc.b " A,X,Y:8bit",0
- .axy16 dc.b " A,X,Y:16bit",0
- cnop 0,4
-
-
- ;00 #$zz
- fmode00 move.b #'#',(a0)+
- ;01 $zz
- fmode01
- move.b #'$',(a0)+
- move.b 1(a4),d0
- addq.l #1,d7
- moveq #2,d1
- bsr conv_hex
- add.l d1,a0
- rts
-
- ;02 $zz,x
- fmode02 move.b #'$',(a0)+
- move.b 1(a4),d0
- addq.l #1,d7
- moveq #2,d1
- bsr conv_hex
- add.l d1,a0
- move.b #',',(a0)+
- move.b #'X',(a0)+
- rts
-
- ;03 ($zz)
- fmode03 move.b #'(',(a0)+
- move.b #'$',(a0)+
- move.b 1(a4),d0
- addq.l #1,d7
- moveq #2,d1
- bsr conv_hex
- add.l d1,a0
- move.b #')',(a0)+
- rts
-
- ;04 ($zz,x)
- fmode04 move.b #'(',(a0)+
- move.b #'$',(a0)+
- move.b 1(a4),d0
- addq.l #1,d7
- moveq #2,d1
- bsr conv_hex
- add.l d1,a0
- move.b #',',(a0)+
- move.b #'X',(a0)+
- move.b #')',(a0)+
- rts
- ;05 ($zz),y
- fmode05 move.b #'(',(a0)+
- move.b #'$',(a0)+
- move.b 1(a4),d0
- addq.l #1,d7
- moveq #2,d1
- bsr conv_hex
- add.l d1,a0
- move.b #')',(a0)+
- move.b #',',(a0)+
- move.b #'Y',(a0)+
- rts
-
- ;06 [$zz]
- fmode06 move.b #'[',(a0)+
- move.b #'$',(a0)+
- move.b 1(a4),d0
- addq.l #1,d7
- moveq #2,d1
- bsr conv_hex
- add.l d1,a0
- move.b #']',(a0)+
- rts
-
- ;07 [$zz],y
- fmode07 move.b #'[',(a0)+
- move.b #'$',(a0)+
- move.b 1(a4),d0
- addq.l #1,d7
- moveq #2,d1
- bsr conv_hex
- add.l d1,a0
- move.b #']',(a0)+
- move.b #',',(a0)+
- move.b #'Y',(a0)+
- rts
-
- ;08 $zzzz
- fmode08 move.b #'$',(a0)+
- move.b 2(a4),d0
- lsl.w #8,d0
- move.b 1(a4),d0
- addq.l #2,d7
- moveq #4,d1
- bsr conv_hex
- add.l d1,a0
- rts
-
- ;09 $zzzz,x
- fmode09 move.b #'$',(a0)+
- move.b 2(a4),d0
- lsl.w #8,d0
- move.b 1(a4),d0
- addq.l #2,d7
- moveq #4,d1
- bsr conv_hex
- add.l d1,a0
- move.b #',',(a0)+
- move.b #'X',(a0)+
- rts
-
- ;10 $zzzz,y
- fmode10 move.b #'$',(a0)+
- move.b 2(a4),d0
- lsl.w #8,d0
- move.b 1(a4),d0
- addq.l #2,d7
- moveq #4,d1
- bsr conv_hex
- add.l d1,a0
- move.b #',',(a0)+
- move.b #'Y',(a0)+
- rts
-
-
- ;11 $zzzzzz
- fmode11 move.b #'$',(a0)+
- move.b 3(a4),d0
- lsl.l #8,d0
- move.b 2(a4),d0
- lsl.l #8,d0
- move.b 1(a4),d0
- addq.l #3,d7
- moveq #6,d1
- bsr conv_hex
- add.l d1,a0
- rts
-
- ;12 $zzzzzz,x
- fmode12 move.b #'$',(a0)+
- move.b 3(a4),d0
- lsl.l #8,d0
- move.b 2(a4),d0
- lsl.l #8,d0
- move.b 1(a4),d0
- addq.l #3,d7
- moveq #6,d1
- bsr conv_hex
- add.l d1,a0
- move.b #',',(a0)+
- move.b #'X',(a0)+
- rts
-
- ;13 $zz,s
- fmode13
- move.b #'$',(a0)+
- move.b 1(a4),d0
- addq.l #1,d7
- moveq #2,d1
- bsr conv_hex
- add.l d1,a0
- move.b #',',(a0)+
- move.b #'S',(a0)+
- rts
-
- ;14 ($zz,s),y
- fmode14 move.b #'(',(a0)+
- move.b #'$',(a0)+
- move.b 1(a4),d0
- addq.l #1,d7
- moveq #2,d1
- bsr conv_hex
- add.l d1,a0
- move.b #',',(a0)+
- move.b #'S',(a0)+
- move.b #')',(a0)+
- move.b #',',(a0)+
- move.b #'Y',(a0)+
- rts
-
- ;15 a
- fmode15 move.b #'A',(a0)+
- rts
-
- ;23 #$zz #$zzzz
- fmode16 move.b #'#',(a0)+
- move.b #'$',(a0)+
- tst.b fami_mode
- bne.b .do_16
- move.b 1(a4),d0
- addq.l #1,d7
- moveq #2,d1
- bsr conv_hex
- add.l d1,a0
- rts
-
- .do_16 move.b 2(a4),d0
- lsl.w #8,d0
- move.b 1(a4),d0
- addq.l #2,d7
- moveq #4,d1
- bsr conv_hex
- add.l d1,a0
- rts
-
-
- ;17 pc+2+next byte
- fmode17 move.l a4,d0
- addq.l #2,d0
- move.b 1(a4),d1
- addq.l #1,d7
- ext.w d1
- ext.l d1
- add.l d1,d0
- moveq #6,d1
- bsr conv_hex
- add.l d1,a0
- rts
-
- ;18 'rien'
- fmode18 rts
-
- ;19 pc+3+next word
- fmode19 move.l a4,d0
- addq.l #3,d0
- move.b 2(a4),d1
- lsl.w #8,d1
- move.b 1(a4),d1
- addq.l #2,d7
- ext.l d1
- add.l d1,d0
- moveq #6,d1
- bsr conv_hex
- add.l d1,a0
- rts
-
- ;20 ($zzzz)
- fmode20 move.b #'(',(a0)+
- move.b #'$',(a0)+
- move.b 2(a4),d0
- lsl.w #8,d0
- move.b 1(a4),d0
- addq.l #2,d7
- moveq #4,d1
- bsr conv_hex
- add.l d1,a0
- move.b #')',(a0)+
- rts
-
- ;21 ($zzzz,x)
- fmode21 move.b #'(',(a0)+
- move.b #'$',(a0)+
- move.b 2(a4),d0
- lsl.w #8,d0
- move.b 1(a4),d0
- addq.l #2,d7
- moveq #4,d1
- bsr conv_hex
- add.l d1,a0
- move.b #',',(a0)+
- move.b #'X',(a0)+
- move.b #')',(a0)+
- rts
-
- ;22 $zz,y
- fmode22 move.b #'$',(a0)+
- move.b 1(a4),d0
- addq.l #1,d7
- moveq #2,d1
- bsr conv_hex
- add.l d1,a0
- move.b #',',(a0)+
- move.b #'Y',(a0)+
- rts
-
-
- fami_list dc.b $e2,0 ;byte of instruction,0
- dc.b 'SEP',0 ;ascII of instruction
- dc.w 0+$8000 ;addr. mode
-
- dc.b $69,0
- dc.b 'ADC',0
- dc.w 16
-
- dc.b $65,0
- dc.b 'ADC',0
- dc.w 01
-
- dc.b $75,0
- dc.b 'ADC',0
- dc.w 02
-
- dc.b $72,0
- dc.b 'ADC',0
- dc.w 03
-
- dc.b $61,0
- dc.b 'ADC',0
- dc.w 04
-
- dc.b $71,0
- dc.b 'ADC',0
- dc.w 05
-
- dc.b $67,0
- dc.b 'ADC',0
- dc.w 06
-
- dc.b $77,0
- dc.b 'ADC',0
- dc.w 07
-
- dc.b $6D,0
- dc.b 'ADC',0
- dc.w 08
-
- dc.b $7D,0
- dc.b 'ADC',0
- dc.w 09
-
- dc.b $79,0
- dc.b 'ADC',0
- dc.w 10
-
- dc.b $6F,0
- dc.b 'ADC',0
- dc.w 11
-
- dc.b $7F,0
- dc.b 'ADC',0
- dc.w 12
-
- dc.b $63,0
- dc.b 'ADC',0
- dc.w 13
-
- dc.b $73,0
- dc.b 'ADC',0
- dc.w 14
-
- dc.b $29,0
- dc.b 'AND',0
- dc.w 16
-
- dc.b $25,0
- dc.b 'AND',0
- dc.w 01
-
- dc.b $35,0
- dc.b 'AND',0
- dc.w 02
-
- dc.b $32,0
- dc.b 'AND',0
- dc.w 03
-
- dc.b $21,0
- dc.b 'AND',0
- dc.w 04
-
- dc.b $31,0
- dc.b 'AND',0
- dc.w 05
-
- dc.b $27,0
- dc.b 'AND',0
- dc.w 06
-
- dc.b $37,0
- dc.b 'AND',0
- dc.w 07
-
- dc.b $2D,0
- dc.b 'AND',0
- dc.w 08
-
- dc.b $3D,0
- dc.b 'AND',0
- dc.w 09
-
- dc.b $39,0
- dc.b 'AND',0
- dc.w 10
-
- dc.b $2F,0
- dc.b 'AND',0
- dc.w 11
-
- dc.b $3F,0
- dc.b 'AND',0
- dc.w 12
-
- dc.b $23,0
- dc.b 'AND',0
- dc.w 13
-
- dc.b $33,0
- dc.b 'AND',0
- dc.w 14
-
- dc.b $0A,0
- dc.b 'ASL',0
- dc.w 15
-
- dc.b $06,0
- dc.b 'ASL',0
- dc.w 01
-
- dc.b $16,0
- dc.b 'ASL',0
- dc.w 02
-
- dc.b $0E,0
- dc.b 'ASL',0
- dc.w 08
-
- dc.b $1E,0
- dc.b 'ASL',0
- dc.w 09
-
- dc.b $89,0
- dc.b 'BIT',0
- dc.w 16
-
- dc.b $24,0
- dc.b 'BIT',0
- dc.w 01
-
- dc.b $34,0
- dc.b 'BIT',0
- dc.w 02
-
- dc.b $2C,0
- dc.b 'BIT',0
- dc.w 08
-
- dc.b $3C,0
- dc.b 'BIT',0
- dc.w 09
-
- dc.b $C9,0
- dc.b 'CMP',0
- dc.w 16
-
- dc.b $C5,0
- dc.b 'CMP',0
- dc.w 01
-
- dc.b $D5,0
- dc.b 'CMP',0
- dc.w 02
-
- dc.b $D2,0
- dc.b 'CMP',0
- dc.w 03
-
- dc.b $C1,0
- dc.b 'CMP',0
- dc.w 04
-
- dc.b $D1,0
- dc.b 'CMP',0
- dc.w 05
-
- dc.b $C7,0
- dc.b 'CMP',0
- dc.w 06
-
- dc.b $D7,0
- dc.b 'CMP',0
- dc.w 07
-
- dc.b $CD,0
- dc.b 'CMP',0
- dc.w 08
-
- dc.b $DD,0
- dc.b 'CMP',0
- dc.w 09
-
- dc.b $D9,0
- dc.b 'CMP',0
- dc.w 10
-
- dc.b $CF,0
- dc.b 'CMP',0
- dc.w 11
-
- dc.b $DF,0
- dc.b 'CMP',0
- dc.w 12
-
- dc.b $C3,0
- dc.b 'CMP',0
- dc.w 13
-
- dc.b $D3,0
- dc.b 'CMP',0
- dc.w 14
-
- dc.b $E0,0
- dc.b 'CPX',0
- dc.w 16
-
- dc.b $E4,0
- dc.b 'CPX',0
- dc.w 01
-
- dc.b $EC,0
- dc.b 'CPX',0
- dc.w 08
-
- dc.b $C0,0
- dc.b 'CPY',0
- dc.w 16
-
- dc.b $C4,0
- dc.b 'CPY',0
- dc.w 01
-
- dc.b $CC,0
- dc.b 'CPY',0
- dc.w 08
-
- dc.b $3A,0
- dc.b 'DEC',0
- dc.w 15
-
- dc.b $C6,0
- dc.b 'DEC',0
- dc.w 01
-
- dc.b $D6,0
- dc.b 'DEC',0
- dc.w 02
-
- dc.b $CE,0
- dc.b 'DEC',0
- dc.w 08
-
- dc.b $DE,0
- dc.b 'DEC',0
- dc.w 09
-
- dc.b $49,0
- dc.b 'EOR',0
- dc.w 16
-
- dc.b $45,0
- dc.b 'EOR',0
- dc.w 01
-
- dc.b $55,0
- dc.b 'EOR',0
- dc.w 02
-
- dc.b $52,0
- dc.b 'EOR',0
- dc.w 03
-
- dc.b $41,0
- dc.b 'EOR',0
- dc.w 04
-
- dc.b $51,0
- dc.b 'EOR',0
- dc.w 05
-
- dc.b $47,0
- dc.b 'EOR',0
- dc.w 06
-
- dc.b $57,0
- dc.b 'EOR',0
- dc.w 07
-
- dc.b $4D,0
- dc.b 'EOR',0
- dc.w 08
-
- dc.b $5D,0
- dc.b 'EOR',0
- dc.w 09
-
- dc.b $59,0
- dc.b 'EOR',0
- dc.w 10
-
- dc.b $4F,0
- dc.b 'EOR',0
- dc.w 11
-
- dc.b $5F,0
- dc.b 'EOR',0
- dc.w 12
-
- dc.b $43,0
- dc.b 'EOR',0
- dc.w 13
-
- dc.b $53,0
- dc.b 'EOR',0
- dc.w 14
-
- dc.b $1A,0
- dc.b 'INC',0
- dc.w 15
-
- dc.b $E6,0
- dc.b 'INC',0
- dc.w 01
-
- dc.b $F6,0
- dc.b 'INC',0
- dc.w 02
-
- dc.b $EE,0
- dc.b 'INC',0
- dc.w 08
-
- dc.b $FE,0
- dc.b 'INC',0
- dc.w 09
-
- dc.b $A9,0
- dc.b 'LDA',0
- dc.w 16
-
- dc.b $A5,0
- dc.b 'LDA',0
- dc.w 01
-
- dc.b $B5,0
- dc.b 'LDA',0
- dc.w 02
-
- dc.b $B2,0
- dc.b 'LDA',0
- dc.w 03
-
- dc.b $A1,0
- dc.b 'LDA',0
- dc.w 04
-
- dc.b $B1,0
- dc.b 'LDA',0
- dc.w 05
-
- dc.b $A7,0
- dc.b 'LDA',0
- dc.w 06
-
- dc.b $B7,0
- dc.b 'LDA',0
- dc.w 07
-
- dc.b $AD,0
- dc.b 'LDA',0
- dc.w 08
-
- dc.b $BD,0
- dc.b 'LDA',0
- dc.w 09
-
- dc.b $B9,0
- dc.b 'LDA',0
- dc.w 10
-
- dc.b $AF,0
- dc.b 'LDA',0
- dc.w 11
-
- dc.b $BF,0
- dc.b 'LDA',0
- dc.w 12
-
- dc.b $A3,0
- dc.b 'LDA',0
- dc.w 13
-
- dc.b $B3,0
- dc.b 'LDA',0
- dc.w 14
-
- dc.b $A2,0
- dc.b 'LDX',0
- dc.w 16
-
- dc.b $A6,0
- dc.b 'LDX',0
- dc.w 01
-
- dc.b $B6,0
- dc.b 'LDX',0
- dc.w 22
-
- dc.b $AE,0
- dc.b 'LDX',0
- dc.w 08
-
- dc.b $BE,0
- dc.b 'LDX',0
- dc.w 10
-
- dc.b $A0,0
- dc.b 'LDY',0
- dc.w 16
-
- dc.b $A4,0
- dc.b 'LDY',0
- dc.w 01
-
- dc.b $B4,0
- dc.b 'LDY',0
- dc.w 02
-
- dc.b $AC,0
- dc.b 'LDY',0
- dc.w 08
-
- dc.b $BC,0
- dc.b 'LDY',0
- dc.w 09
-
- dc.b $46,0
- dc.b 'LSR',0
- dc.w 01
-
- dc.b $56,0
- dc.b 'LSR',0
- dc.w 02
-
- dc.b $4E,0
- dc.b 'LSR',0
- dc.w 08
-
- dc.b $5E,0
- dc.b 'LSR',0
- dc.w 09
-
- dc.b $4A,0
- dc.b 'LSR',0
- dc.w 15
-
- dc.b $09,0
- dc.b 'ORA',0
- dc.w 16
-
- dc.b $05,0
- dc.b 'ORA',0
- dc.w 01
-
- dc.b $15,0
- dc.b 'ORA',0
- dc.w 02
-
- dc.b $12,0
- dc.b 'ORA',0
- dc.w 03
-
- dc.b $01,0
- dc.b 'ORA',0
- dc.w 04
-
- dc.b $11,0
- dc.b 'ORA',0
- dc.w 05
-
- dc.b $07,0
- dc.b 'ORA',0
- dc.w 06
-
- dc.b $17,0
- dc.b 'ORA',0
- dc.w 07
-
- dc.b $0D,0
- dc.b 'ORA',0
- dc.w 08
-
- dc.b $1D,0
- dc.b 'ORA',0
- dc.w 09
-
- dc.b $19,0
- dc.b 'ORA',0
- dc.w 10
-
- dc.b $0F,0
- dc.b 'ORA',0
- dc.w 11
-
- dc.b $1F,0
- dc.b 'ORA',0
- dc.w 12
-
- dc.b $03,0
- dc.b 'ORA',0
- dc.w 13
-
- dc.b $13,0
- dc.b 'ORA',0
- dc.w 14
-
- dc.b $2A,0
- dc.b 'ROL',0
- dc.w 15
-
- dc.b $26,0
- dc.b 'ROL',0
- dc.w 01
-
- dc.b $36,0
- dc.b 'ROL',0
- dc.w 02
-
- dc.b $2E,0
- dc.b 'ROL',0
- dc.w 08
-
- dc.b $3E,0
- dc.b 'ROL',0
- dc.w 09
-
- dc.b $6A,0
- dc.b 'ROR',0
- dc.w 15
-
- dc.b $66,0
- dc.b 'ROR',0
- dc.w 01
-
- dc.b $76,0
- dc.b 'ROR',0
- dc.w 02
-
- dc.b $6E,0
- dc.b 'ROR',0
- dc.w 08
-
- dc.b $7E,0
- dc.b 'ROR',0
- dc.w 09
-
- dc.b $E9,0
- dc.b 'SBC',0
- dc.w 16
-
- dc.b $E5,0
- dc.b 'SBC',0
- dc.w 01
-
- dc.b $F5,0
- dc.b 'SBC',0
- dc.w 02
-
- dc.b $F2,0
- dc.b 'SBC',0
- dc.w 03
-
- dc.b $E1,0
- dc.b 'SBC',0
- dc.w 04
-
- dc.b $F1,0
- dc.b 'SBC',0
- dc.w 05
-
- dc.b $E7,0
- dc.b 'SBC',0
- dc.w 06
-
- dc.b $F7,0
- dc.b 'SBC',0
- dc.w 07
-
- dc.b $ED,0
- dc.b 'SBC',0
- dc.w 08
-
- dc.b $FD,0
- dc.b 'SBC',0
- dc.w 09
-
- dc.b $F9,0
- dc.b 'SBC',0
- dc.w 10
-
- dc.b $EF,0
- dc.b 'SBC',0
- dc.w 11
-
- dc.b $FF,0
- dc.b 'SBC',0
- dc.w 12
-
- dc.b $E3,0
- dc.b 'SBC',0
- dc.w 13
-
- dc.b $F3,0
- dc.b 'SBC',0
- dc.w 14
-
- dc.b $85,0
- dc.b 'STA',0
- dc.w 01
-
- dc.b $95,0
- dc.b 'STA',0
- dc.w 02
-
- dc.b $92,0
- dc.b 'STA',0
- dc.w 03
-
- dc.b $81,0
- dc.b 'STA',0
- dc.w 04
-
- dc.b $91,0
- dc.b 'STA',0
- dc.w 05
-
- dc.b $87,0
- dc.b 'STA',0
- dc.w 06
-
- dc.b $97,0
- dc.b 'STA',0
- dc.w 07
-
- dc.b $8D,0
- dc.b 'STA',0
- dc.w 08
-
- dc.b $9D,0
- dc.b 'STA',0
- dc.w 09
-
- dc.b $99,0
- dc.b 'STA',0
- dc.w 10
-
- dc.b $8F,0
- dc.b 'STA',0
- dc.w 11
-
- dc.b $9F,0
- dc.b 'STA',0
- dc.w 12
-
- dc.b $83,0
- dc.b 'STA',0
- dc.w 13
-
- dc.b $93,0
- dc.b 'STA',0
- dc.w 14
-
- dc.b $86,0
- dc.b 'STX',0
- dc.w 01
-
- dc.b $96,0
- dc.b 'STX',0
- dc.w 22
-
- dc.b $8E,0
- dc.b 'STX',0
- dc.w 08
-
- dc.b $84,0
- dc.b 'STY',0
- dc.w 01
-
- dc.b $94,0
- dc.b 'STY',0
- dc.w 02
-
- dc.b $8C,0
- dc.b 'STY',0
- dc.w 08
-
- dc.b $64,0
- dc.b 'STZ',0
- dc.w 01
-
- dc.b $74,0
- dc.b 'STZ',0
- dc.w 02
-
- dc.b $9C,0
- dc.b 'STZ',0
- dc.w 08
-
- dc.b $9E,0
- dc.b 'STZ',0
- dc.w 09
-
- dc.b $14,0
- dc.b 'TRB',0
- dc.w 01
-
- dc.b $1C,0
- dc.b 'TRB',0
- dc.w 08
-
- dc.b $04,0
- dc.b 'TSB',0
- dc.w 01
-
- dc.b $0C,0
- dc.b 'TSB',0
- dc.w 08
-
- dc.b $C2,0
- dc.b 'REP',0
- dc.w 00+$4000
-
- dc.b $E2,0
- dc.b 'SEP',0
- dc.w 0+$8000
-
- dc.b $90,0
- dc.b 'BCC',0
- dc.w 17
-
- dc.b $B0,0
- dc.b 'BCS',0
- dc.w 17
-
- dc.b $F0,0
- dc.b 'BEQ',0
- dc.w 17
-
- dc.b $30,0
- dc.b 'BMI',0
- dc.w 17
-
- dc.b $D0,0
- dc.b 'BNE',0
- dc.w 17
-
- dc.b $10,0
- dc.b 'BPL',0
- dc.w 17
-
- dc.b $80,0
- dc.b 'BRA',0
- dc.w 17
-
- dc.b $50,0
- dc.b 'BVC',0
- dc.w 17
-
- dc.b $70,0
- dc.b 'BVS',0
- dc.w 17
-
- dc.b $18,0
- dc.b 'CLC',0
- dc.w 18
-
- dc.b $D8,0
- dc.b 'CLD',0
- dc.w 18
-
- dc.b $58,0
- dc.b 'CLI',0
- dc.w 18
-
- dc.b $B8,0
- dc.b 'CLV',0
- dc.w 18
-
- dc.b $CA,0
- dc.b 'DEX',0
- dc.w 18
-
- dc.b $88,0
- dc.b 'DEY',0
- dc.w 18
-
- dc.b $E8,0
- dc.b 'INX',0
- dc.w 18
-
- dc.b $C8,0
- dc.b 'INY',0
- dc.w 18
-
- dc.b $EA,0
- dc.b 'NOP',0
- dc.w 18
-
- dc.b $F4,0
- dc.b 'PEA',0
- dc.w 08
-
- dc.b $D4,0
- dc.b 'PEI',0
- dc.w 03
-
- dc.b $62,0
- dc.b 'PER',0
- dc.w 19
-
- dc.b $48,0
- dc.b 'PHA',0
- dc.w 18
-
- dc.b $8B,0
- dc.b 'PHB',0
- dc.w 18
-
- dc.b $0B,0
- dc.b 'PHD',0
- dc.w 18
-
- dc.b $4B,0
- dc.b 'PHK',0
- dc.w 18
-
- dc.b $08,0
- dc.b 'PHP',0
- dc.w 18
-
- dc.b $DA,0
- dc.b 'PHX',0
- dc.w 18
-
- dc.b $5A,0
- dc.b 'PHY',0
- dc.w 18
-
- dc.b $68,0
- dc.b 'PLA',0
- dc.w 18
-
- dc.b $AB,0
- dc.b 'PLB',0
- dc.w 18
-
- dc.b $2B,0
- dc.b 'PLD',0
- dc.w 18
-
- dc.b $28,0
- dc.b 'PLP',0
- dc.w 18
-
- dc.b $FA,0
- dc.b 'PLX',0
- dc.w 18
-
- dc.b $7A,0
- dc.b 'PLY',0
- dc.w 18
-
- dc.b $38,0
- dc.b 'SEC',0
- dc.w 18
-
- dc.b $F8,0
- dc.b 'SED',0
- dc.w 18
-
- dc.b $78,0
- dc.b 'SEI',0
- dc.w 18
-
- dc.b $AA,0
- dc.b 'TAX',0
- dc.w 18
-
- dc.b $A8,0
- dc.b 'TAY',0
- dc.w 18
-
- dc.b $5B,0
- dc.b 'TCD',0
- dc.w 18
-
- dc.b $1B,0
- dc.b 'TCS',0
- dc.w 18
-
- dc.b $7B,0
- dc.b 'TDC',0
- dc.w 18
-
- dc.b $1C,0
- dc.b 'TRB',0
- dc.w 08
-
- dc.b $14,0
- dc.b 'TRB',0
- dc.w 01
-
- dc.b $0C,0
- dc.b 'TSB',0
- dc.w 08
-
- dc.b $04,0
- dc.b 'TSB',0
- dc.w 01
-
- dc.b $3B,0
- dc.b 'TSC',0
- dc.w 18
-
- dc.b $BA,0
- dc.b 'TSX',0
- dc.w 18
-
- dc.b $8A,0
- dc.b 'TXA',0
- dc.w 18
-
- dc.b $9A,0
- dc.b 'TXS',0
- dc.w 18
-
- dc.b $9B,0
- dc.b 'TXY',0
- dc.w 18
-
- dc.b $98,0
- dc.b 'TYA',0
- dc.w 18
-
- dc.b $BB,0
- dc.b 'TYX',0
- dc.w 18
-
- dc.b $FB,0
- dc.b 'XCE',0
- dc.w 18
-
- dc.b $00,0
- dc.b 'BRK',0
- dc.w 00
-
- dc.b $82,0
- dc.b 'BRL',0
- dc.w 19
-
- dc.b $02,0
- dc.b 'COP',0
- dc.w 00
-
- dc.b $DC,0
- dc.b 'JML',0
- dc.w 20
-
- dc.b $4C,0
- dc.b 'JMP',0
- dc.w 08
-
- dc.b $6C,0
- dc.b 'JMP',0
- dc.w 20
-
- dc.b $7C,0
- dc.b 'JMP',0
- dc.w 21
-
- dc.b $5C,0
- dc.b 'JMP',0
- dc.w 11
-
- dc.b $22,0
- dc.b 'JSL',0
- dc.w 11
-
- dc.b $20,0
- dc.b 'JSR',0
- dc.w 08
-
- dc.b $FC,0
- dc.b 'JSR',0
- dc.w 21
-
- dc.b $54,0
- dc.b 'MVN',0
- dc.w 08
-
- dc.b $44,0
- dc.b 'MVP',0
- dc.w 08
-
- dc.b $C2,0
- dc.b 'REP',0
- dc.w 00+$4000
-
- dc.b $40,0
- dc.b 'RTI',0
- dc.w 18
-
- dc.b $6B,0
- dc.b 'RTL',0
- dc.w 18
-
- dc.b $60,0
- dc.b 'RTS',0
- dc.w 18
-
- dc.b $E2,0
- dc.b 'SEP',0
- dc.w 00+$8000
-
- dc.b $DB,0
- dc.b 'STP',0
- dc.w 18
-
- dc.b $CB,0
- dc.b 'WAI',0
- dc.w 18
-
- dc.b $EB,0
- dc.b 'XBA',0
- dc.w 18
-
- dc.w -1
-
- ;00 #$zz
- ;01 $zz
- ;02 $zz,x
- ;03 ($zz)
- ;04 ($zz,x)
- ;05 ($zz),y
- ;06 [$zz]
- ;07 [$zz],y
- ;08 $zzzz
- ;09 $zzzz,x
- ;10 $zzzz,y
- ;11 $zzzzzz
- ;12 $zzzzzz,x
- ;13 $zz,s
- ;14 ($zz,s),y
- ;15 a
- ;16 #$zz #$zzzz
- ;17 pc+2+next byte
- ;18 'rien'
- ;19 pc+3+next word
- ;20 ($zzzz)
- ;21 ($zzzz,x)
- ;22 $zz,y
-
- ;bit 15 a,x,y:8bit
- ;bit 14 a,x,y:16bit
-
-